Apex Sharing Rules এবং Security Considerations

Computer Programming - এপেক্স (Apex) Apex Security (Apex Security) |
268
268

Apex Sharing Rules এবং Security Considerations Salesforce-এ ডেটা সুরক্ষার জন্য গুরুত্বপূর্ণ। Sharing Rules Apex কোডে ব্যবহারকারীর রোল, প্রোফাইল, এবং নির্দিষ্ট শেয়ারিং নিয়ম অনুযায়ী রেকর্ডের অ্যাক্সেস নিয়ন্ত্রণ করে, যা নিশ্চিত করে যে ব্যবহারকারী শুধুমাত্র অনুমোদিত ডেটা দেখতে ও অ্যাক্সেস করতে পারবে। Apex ক্লাসে শেয়ারিং নিয়মগুলো ব্যবহারের সময় নিরাপত্তার বিষয়গুলো বিবেচনা করা গুরুত্বপূর্ণ।


Apex Sharing Rules

Sharing Rules Apex কোডে নির্দিষ্ট রেকর্ড বা ডেটার উপর অ্যাক্সেস নিয়ন্ত্রণ করতে সহায়ক। Apex ক্লাসে With Sharing এবং Without Sharing কিওয়ার্ড ব্যবহার করে শেয়ারিং নিয়ম মেনে চলা বা এড়ানো সম্ভব হয়।

1. With Sharing

With Sharing কিওয়ার্ড ব্যবহার করে Apex ক্লাসে শেয়ারিং নিয়ম মেনে চলা নিশ্চিত করা হয়, যা ব্যবহারকারীর নির্ধারিত শেয়ারিং নিয়ম এবং রোল ভিত্তিক অ্যাক্সেস সীমাবদ্ধতা অনুযায়ী ডেটা ফিল্টার করে।

উদাহরণ: With Sharing

public with sharing class AccountService {
    public List<Account> getAccounts() {
        return [SELECT Id, Name FROM Account];
    }
}
  • with sharing: এখানে শেয়ারিং নিয়ম অনুসরণ করা হয়েছে, যাতে ব্যবহারকারী শুধুমাত্র অনুমোদিত Account রেকর্ডগুলো দেখতে পারেন।

2. Without Sharing

Without Sharing কিওয়ার্ড ব্যবহার করে Apex ক্লাসে শেয়ারিং নিয়ম এড়িয়ে যাওয়া হয়, যা ক্লাসকে সমস্ত রেকর্ডে অ্যাক্সেস দেয়। এটি সাধারণত তখন ব্যবহার করা হয়, যখন অ্যাডমিনিস্ট্রেটিভ কাজ বা রেকর্ড ফিল্টারিং প্রয়োজন হয় না।

উদাহরণ: Without Sharing

public without sharing class AdminService {
    public List<Account> getAllAccounts() {
        return [SELECT Id, Name FROM Account];
    }
}
  • without sharing: এখানে শেয়ারিং নিয়ম অনুসরণ না করে সমস্ত Account রেকর্ডে অ্যাক্সেস প্রদান করা হয়েছে।

Sharing Rules ব্যবহার করার প্রধান ক্ষেত্র

  1. ব্যবহারকারীর অ্যাক্সেস সীমাবদ্ধ রাখা: With Sharing ব্যবহার করে ব্যবহারকারীর জন্য ডেটা ফিল্টার করা যায়।
  2. রোল এবং হায়ারার্কি ভিত্তিক শেয়ারিং: With Sharing ব্যবহার করে রোল ভিত্তিক শেয়ারিং নিশ্চিত করা যায়।
  3. অ্যাডমিনিস্ট্রেটিভ কাজ: Without Sharing কিওয়ার্ড ব্যবহার করে অ্যাডমিনিস্ট্রেটিভ কাজ সম্পন্ন করা যায় যেখানে পুরো ডেটা অ্যাক্সেস প্রয়োজন।

Security Considerations

Apex কোডের নিরাপত্তা নিশ্চিত করতে বিভিন্ন Security Considerations মেনে চলা উচিত, যাতে ডেটা সুরক্ষা নিশ্চিত হয় এবং ইনজেকশন বা ডেটা লিক প্রতিরোধ করা যায়।

1. Object-Level এবং Field-Level Security যাচাই করা

প্রতিটি SOQL এবং DML অপারেশনের আগে Object-Level এবং Field-Level Security যাচাই করা উচিত, যাতে ব্যবহারকারীর অনুমোদিত ডেটা ছাড়া অন্য ডেটা অ্যাক্সেস না হয়।

উদাহরণ: Object-Level এবং Field-Level Security যাচাই

public class AccountService {
    public void updateAccountName(Account acc) {
        if (Schema.sObjectType.Account.isUpdateable() && Schema.sObjectType.Account.fields.Name.isUpdateable()) {
            update acc;
        } else {
            throw new CustomException('Insufficient permissions to update Account Name.');
        }
    }
}

2. SOQL ইনজেকশন প্রতিরোধ

SOQL ইনজেকশন প্রতিরোধ করতে ইনপুট স্যানিটাইজেশন এবং Bind Variables ব্যবহার করা উচিত। ইনপুট সরাসরি SOQL স্টেটমেন্টে যুক্ত না করে, Bind Variables ব্যবহার করা সুরক্ষিত।

উদাহরণ: SOQL ইনজেকশন প্রতিরোধ

public class AccountQuery {
    public List<Account> getAccounts(String accountName) {
        String sanitizedAccountName = String.escapeSingleQuotes(accountName);
        return [SELECT Id, Name FROM Account WHERE Name = :sanitizedAccountName];
    }
}

3. CRUD Permissions যাচাই

CRUD Permissions যাচাই করা নিশ্চিত করে যে ব্যবহারকারী নির্দিষ্ট অবজেক্ট বা ফিল্ডে অ্যাক্সেস অনুমোদিত কি না। Apex কোডে CRUD অনুমতি যাচাই করতে isCreateable(), isUpdateable(), isDeletable(), এবং isAccessible() মেথড ব্যবহার করা হয়।

উদাহরণ: CRUD Permissions যাচাই করা

public class AccountCRUD {
    public void deleteAccount(Account acc) {
        if (Schema.sObjectType.Account.isDeletable()) {
            delete acc;
        } else {
            throw new CustomException('Insufficient permissions to delete Account.');
        }
    }
}

4. With Sharing এবং Without Sharing এর প্রয়োগের সময় সতর্কতা

  • With Sharing: ব্যবহারের সময় নিশ্চিত করুন, এটি ব্যবহারকারীর অ্যাক্সেস সীমাবদ্ধ রাখছে এবং প্রয়োজন অনুযায়ী ফিল্টার করা হচ্ছে।
  • Without Sharing: শুধুমাত্র অ্যাডমিনিস্ট্রেটিভ কাজ বা যেখানে পূর্ণ অ্যাক্সেসের প্রয়োজন, সেখানে ব্যবহার করা উচিত। এটি রেকর্ড-ভিত্তিক সুরক্ষার জন্য ঝুঁকিপূর্ণ হতে পারে।

5. Exception Handling এবং Logging

Exception Handling এবং যথাযথ Logging সিস্টেম ব্যবহার করে নিশ্চিত করুন যে নিরাপত্তা লঙ্ঘন, ইনজেকশন অ্যাটাক বা ডেটা লিক সনাক্ত করা সহজ হয়।

উদাহরণ: Exception Handling

public class AccountService {
    public List<Account> getAccounts() {
        try {
            return [SELECT Id, Name FROM Account];
        } catch (Exception e) {
            System.debug('Error: ' + e.getMessage());
            throw new CustomException('Unable to retrieve Accounts.');
        }
    }
}

Apex Sharing এবং Security Considerations: Best Practices

with sharing ব্যবহার করুন: যতটা সম্ভব with sharing ব্যবহার করুন এবং শুধুমাত্র প্রয়োজন হলে without sharing ব্যবহার করুন।

CRUD এবং Field-Level Security যাচাই করুন: প্রতিটি DML এবং SOQL অপারেশনের আগে CRUD এবং Field-Level Security যাচাই করা উচিত।

Input Sanitization নিশ্চিত করুন: ইনপুট ভ্যালিডেশন এবং স্যানিটাইজেশন নিশ্চিত করে ইনজেকশন প্রতিরোধ করুন।

Exception Handling এবং Logging: কোডের প্রতিটি গুরুত্বপূর্ণ অংশে Exception Handling এবং যথাযথ Logging নিশ্চিত করুন।

Custom Permissions ব্যবহার করুন: কাস্টম পারমিশন ব্যবহার করে নির্দিষ্ট ফিচারের জন্য ব্যবহারকারীর অ্যাক্সেস নিয়ন্ত্রণ করুন।

Minimal Permissions: প্রোফাইল এবং পারমিশন সেটে ন্যূনতম প্রয়োজনীয় পারমিশন প্রদান করুন।


সারসংক্ষেপ

Apex Sharing Rules ব্যবহারকারীর জন্য নির্দিষ্ট ডেটা এক্সেস নিয়ন্ত্রণ করতে সহায়ক। With Sharing এবং Without Sharing কিওয়ার্ড ব্যবহার করে Apex ক্লাসে শেয়ারিং নিয়ম মেনে চলা বা এড়ানো যায়। একই সাথে, Object-Level, Field-Level, এবং Record-Level Security যাচাই, SOQL ইনজেকশন প্রতিরোধ, এবং CRUD এবং ফিল্ড পারমিশন যাচাই করার মাধ্যমে Apex কোডের নিরাপত্তা নিশ্চিত করা যায়। Proper Exception Handling এবং Logging ব্যবস্থা যুক্ত করে ডেটা সুরক্ষা এবং নির্ভরযোগ্যতা বজায় রাখা সম্ভব।

এই নিরাপত্তা নিয়মগুলো মেনে চলে Salesforce অ্যাপ্লিকেশনকে আরও নিরাপদ ও নির্ভরযোগ্য করে তোলা যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion